package Negocio;

import Datos.DBAutos;
import Entidades.Autos;
import Entidades.Color;
import Entidades.Importador;
import Entidades.Marca;
import Entidades.Modelo;
import Interfaces.IAutos;
import java.util.ArrayList;
import javax.swing.DefaultComboBoxModel;
import javax.swing.table.DefaultTableModel;

public class DAOAutos implements IAutos {

    DBAutos a = new DBAutos();
    DAOMarca b = new DAOMarca();
    DAOModelo c = new DAOModelo();
    DAOColor d = new DAOColor();
    DAOImportador e = new DAOImportador();
    public DefaultTableModel modelo = new DefaultTableModel();
    ArrayList<Autos> lista = a.ListaAutos();

    @Override
    public boolean IngresarAutos(Autos nodo) {
        return a.IngresarAutos(nodo);
    }

    @Override
    public boolean ModificarAutos(Autos nodo) {
        return a.ModificarAutos(nodo);
    }

    @Override
    public boolean EliminarAutos(int NroUnidad) {
        return a.EliminarAutos(NroUnidad);
    }

    @Override
    public ArrayList<Autos> ListaAutos() {
        return a.ListaAutos();
    }

    @Override
    public DefaultTableModel ModeloAutos() {
        modelo = new DefaultTableModel();
        modelo = new javax.swing.table.DefaultTableModel(
                new Object[][]{},
                new String[]{
            "NroUnidad", "NroChasis", "NroMotor", "IDMarca", "IDModelo", "Año", "IDColor", "FechaDeIngresado", "CantidadPasajeros", "IDImportador", "Precio", "PorcentajeGanancia", "Disponibilidad", "KmsCompra", "Abs", "AirbagChoger", "AirbagAcompañante", "CantPuertas", "CantRuedas", "MarcaRuedas", "Calefaccion"
        }){boolean[] canEdit = new boolean [] {
                false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }};
        int i = 0;
        while (i < lista.size()) {
            String asd = Integer.toString(lista.get(i).getNroUnidad());
            String asd1 = Integer.toString(lista.get(i).getNroChasis());
            String asd2 = Integer.toString(lista.get(i).getNroMotor());
            String asd3 = Integer.toString(lista.get(i).getIDMarca());
            String asd4 = Integer.toString(lista.get(i).getIDModelo());
            String asd5 = lista.get(i).getAño();
            String asd6 = Integer.toString(lista.get(i).getIDColor());
            String asd7 = lista.get(i).getFechaDeIngresado();
            String asd8 = Integer.toString(lista.get(i).getCantidadPasajeros());
            String asd9 = Integer.toString(lista.get(i).getIDImportador());
            String asd10 = Integer.toString(lista.get(i).getPrecio());
            String asd11 = Integer.toString(lista.get(i).getPorcentajeGanancia());
            String asd12 = booleanas(lista.get(i).getDisponibilidad());
            String asd13 = Integer.toString(lista.get(i).getKmsCompra());
            String asd14 = booleanas(lista.get(i).getAbs());
            String asd15 = booleanas(lista.get(i).getAirbagsChofer());
            String asd16 = booleanas(lista.get(i).getAirbagsAcompañante());
            String asd17 = Integer.toString(lista.get(i).getCantPuertas());
            String asd18 = Integer.toString(lista.get(i).getCantRuedas());
            String asd19 = lista.get(i).getMarcaRuedas();
            String asd20 = booleanas(lista.get(i).getCalefaccion());
            String asd21 = Integer.toString(lista.get(i).getNroUnidad());
            String asd22 = Integer.toString(lista.get(i).getNroUnidad());
            String[] vector = {asd, asd1, asd2, asd3, asd4, asd5, asd6, asd7, asd8, asd9, asd10, asd11, asd12, asd13, asd14, asd15, asd16, asd17, asd18, asd19, asd20};
            modelo.addRow(vector);
            i++;
        }
        return modelo;
    }

    public DefaultComboBoxModel cargoIdmarca() {
        int x = 0;
        ArrayList<Marca> gg = b.ListaMarca();
        String[] qwe = new String[gg.size()];
        while (x < gg.size()) {
            qwe[x] = Integer.toString(gg.get(x).getIDMarca());
            x++;
        }
        DefaultComboBoxModel model = new DefaultComboBoxModel(qwe);
        return model;
    }

    public DefaultComboBoxModel cargoIdmodelo() {
        int x = 0;
        ArrayList<Modelo> gg = c.ListaModelo();
        String[] qwe = new String[gg.size()];
        while (x < gg.size()) {
            qwe[x] = Integer.toString(gg.get(x).getIDModelo());
            x++;
        }
        DefaultComboBoxModel model = new DefaultComboBoxModel(qwe);
        return model;
    }

    public DefaultComboBoxModel cargoIdcolor() {
        int x = 0;
        ArrayList<Color> gg = d.ListaColor();
        String[] qwe = new String[gg.size()];
        while (x < gg.size()) {
            qwe[x] = Integer.toString(gg.get(x).getIDColor());
            x++;
        }
        DefaultComboBoxModel model = new DefaultComboBoxModel(qwe);
        return model;
    }
    

    public DefaultComboBoxModel cargoIdimportador() {
        int x = 0;
        ArrayList<Importador> gg = e.ListaImportador();
        String[] qwe = new String[gg.size()];
        while (x < gg.size()) {
            qwe[x] = Integer.toString(gg.get(x).getIDImportador());
            x++;
        }
        DefaultComboBoxModel model = new DefaultComboBoxModel(qwe);
        return model;
    }
    public DefaultComboBoxModel cargobooleanas() {
        int x = 0;
        String[] al = new String[2];
        
            al[0] = "Disponible";
            al[1]="No disponible";
           
        DefaultComboBoxModel model = new DefaultComboBoxModel(al);
        return model;
    }
    public String booleanas(boolean par){
        if(par==false){
            return "No Disponible";
        }else{
            return "Disponible";
        }
        
        
    }
}
